The present invention relates generally to the field of Computer Network Management, and more particularly to load balancers.
One standard used to describe how computer systems interact across multiple “layers” of hardware and or machine language logic is the Open Systems Interconnection model (OSI model). The OSI model is a model that characterizes and standardizes the communication functions of a telecommunication or computing system without regard to its underlying internal structure and technology. The OSI model communication systems are partitioned into symbolic layers, with the original model defining seven layers.
Any particular layer is served by the layer below it and serves the layer above it. For example, a layer that provides encrypted communications across a network provides the path needed by applications above it, while calling the next lower layer to receive and send packets comprising the contents of that path. When there are two instances at the same “layer”, the two instances are visualized with a horizontal connection between them in that layer.
The seven layers are: (i) physical; (ii) data link; (iii) network; (iv) transport; (v) session; (vi) presentation; and (vii) application. The physical layer (layer 1) is responsible for receiving and transmitting raw bit streams between components connected by physical mediums. The data link layer (layer 2) is responsible for reliably transmitting data frames between two nodes which are connected via a physical layer. The network layer (layer 3) communicates via packets and includes functionality for managing and structuring multi-node networks, including traffic control, addressing, and routing. The transport layer (layer 4) is responsible for reliable transmission of data segments between points on a network, including multiplexing, segmentation and acknowledgement. The session layer (layer 5) is responsible for management of communication sessions, such as uninterrupted exchanges of information in the form of bi-directional transmissions between two nodes. The presentation layer (layer 6) is responsible for translating data between networking services and applications, including compression, decryption/encryption, and character encoding. Finally, the application layer (layer 7) is responsible for resource sharing, remote file access, and other types of high-level application programming interfaces (API).
In computing, load balancing is a technique for improving distribution of workloads across multiple computing resources, for example, computers, a computer cluster, network links, central processing units, or disk drives. One objective of load balancing is for maximized throughput, minimized response time, optimized resource use, and avoidance of overloading of any single given resource. Usage of multiple load balancing components instead of a single component can increase availability and reliability via redundancy. Load balancing typically involves dedicated software or hardware, such as a Domain Name System server process or a multilayer switch.